﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace splashScreen
{
    public partial class Funcionario : Form
    {
        SqlConnection conect = new SqlConnection("Data Source=localhost;Initial Catalog=PDSD;Persist Security Info=True;User ID=sa;Password=senha");
        
        public Funcionario()
        {
            InitializeComponent();
            ComboSetor();
        }

        private void ComboSetor()
        {
            ServiceReference1.Service1SoapClient x = new ServiceReference1.Service1SoapClient();
            comboBox1.DataSource = x.ComboSetor();
            comboBox1.DisplayMember = "Nome";
            comboBox1.ValueMember = "id";

        }

        private void funcionarioBindingNavigatorSaveItem_Click(object sender, EventArgs e)
        {
            String nome, cargo, dataAdimissao, password,  username,  cep,  cidade, endereco,estado, tipoUsuario;
            int id, salario, custoHora, horasDiarias, setor_id, diaPagamento, numero;
            try
            {
                if ((nomeTextBox.Text != "" && cargoTextBox.Text != "" && custoHoraTextBox.Text != "" && horasDiariasTextBox.Text != "" && diaPagamentoTextBox.Text != "" && salarioTextBox.Text != "" && enderecoTextBox.Text != "" && cidadeTextBox.Text != "" && estadoTextbox.Text != ""))
                {
                    //this.Validate();
                    //this.setorBindingSource.EndEdit();
                    ServiceReference1.Service1SoapClient x = new ServiceReference1.Service1SoapClient();

                    id = Convert.ToInt32(idTextBox.Text);
                    nome = nomeTextBox.Text;
                    salario = Convert.ToInt32(salarioTextBox.Text);
                    cargo = cargoTextBox.Text;
                    custoHora = Convert.ToInt32(custoHoraTextBox.Text);
                    horasDiarias = Convert.ToInt32(horasDiariasTextBox.Text);
                    diaPagamento = Convert.ToInt32(diaPagamentoTextBox.Text);
                    dataAdimissao = dataAdimissaoDateTimePicker.Value.ToString();
                    setor_id = int.Parse(comboBox1.SelectedValue.ToString());
                    //password = senhaTextbox.Text;
                    //username = usuarioTextbox.Text;
                    cep = cepTextBox.Text;
                    cidade = cidadeTextBox.Text;
                    endereco = enderecoTextBox.Text;
                    estado = estadoTextbox.Text;
                    numero = int.Parse(numeroTextBox.Text);
                    //tipoUsuario = comboBox1.SelectedValue.ToString();
                    x.InserirFuncionario(id, nome, salario, cargo, custoHora, horasDiarias, diaPagamento, dataAdimissao, setor_id, cep, cidade, endereco, estado, numero);
                    MessageBox.Show("Cadastro realizado com sucesso");
                    //this.tableAdapterManager.UpdateAll(this.pDSDDataSet);
                    atualizarGrid();
                }
                else
                {
                    MessageBox.Show("Todos os campos devem ser preenchidos");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Não foi possível cadastrar: " + ex.Message);
            }

        }

        private void atualizarGrid()
        {
            ServiceReference1.Service1SoapClient x = new ServiceReference1.Service1SoapClient();
            funcionarioDataGridView.DataSource = x.SelecionarFuncionario();
        }

        private void Funcionario_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'pDSDDataSet.Setor' table. You can move, or remove it, as needed.
            //this.setorTableAdapter.Fill(this.pDSDDataSet.Setor);
            // TODO: This line of code loads data into the 'pDSDDataSet.Funcionario' table. You can move, or remove it, as needed.
            //this.funcionarioTableAdapter.Fill(this.pDSDDataSet.Funcionario);
            //atualizarGrid();
        }

        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            DialogResult resultado = MessageBox.Show("Deseja exluir esse registro?",
                                    "Excluir",
                                    MessageBoxButtons.YesNo,
                                    MessageBoxIcon.Question);

            if (resultado == DialogResult.Yes)
            {
                ServiceReference1.Service1SoapClient x = new ServiceReference1.Service1SoapClient();

                x.ExcluirFuncionario(int.Parse(funcionarioDataGridView.CurrentRow.Cells[0].Value.ToString()));
                MessageBox.Show("Funcionario excluído!");
                atualizarGrid();
            }
            else
            {
                atualizarGrid();
            }
            
            
            
            
        }

        private void toolStripButton2_Click(object sender, EventArgs e)
        {
            String nome, cargo, dataAdimissao, password, username, cep, cidade, endereco, estado, tipoUsuario;
            int id, salario, custoHora, horasDiarias, idSetor, diaPagamento, numero;
            try
            {
                if ((nomeTextBox.Text != "" && cargoTextBox.Text != "" && custoHoraTextBox.Text != "" && horasDiariasTextBox.Text != "" && diaPagamentoTextBox.Text != "" && salarioTextBox.Text != ""))
                {
                    //this.Validate();
                    //this.setorBindingSource.EndEdit();
                    ServiceReference1.Service1SoapClient x = new ServiceReference1.Service1SoapClient();

                    id = Convert.ToInt32(idTextBox.Text);
                    nome = nomeTextBox.Text;
                    salario = Convert.ToInt32(salarioTextBox.Text);
                    cargo = cargoTextBox.Text;
                    custoHora = Convert.ToInt32(custoHoraTextBox.Text);
                    horasDiarias = Convert.ToInt32(horasDiariasTextBox.Text);
                    diaPagamento = Convert.ToInt32(diaPagamentoTextBox.Text);
                    dataAdimissao = dataAdimissaoDateTimePicker.Value.ToString();
                    idSetor = int.Parse(comboBox1.SelectedValue.ToString());
                    //password = senhaTextbox.Text;
                    //username = usuarioTextbox.Text;
                    cep = cepTextBox.Text;
                    cidade = cidadeTextBox.Text;
                    endereco = enderecoTextBox.Text;
                    estado = estadoTextbox.Text;
                    numero = int.Parse(numeroTextBox.Text);
                    //tipoUsuario = comboBox1.SelectedValue.ToString();
                    x.AtualizarFuncionario(id, nome, salario, cargo, custoHora, horasDiarias, diaPagamento, dataAdimissao, idSetor, cep, cidade, endereco, estado, numero);
                    MessageBox.Show("Edição realizada com sucesso");
                    this.tableAdapterManager.UpdateAll(this.pDSDDataSet);
                    atualizarGrid();
                }
                else
                {
                    MessageBox.Show("Todos os campos devem ser preenchidos");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Não foi possível Editar: " + ex.Message);
            }

        }

        private void funcionarioDataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            idTextBox.Text = funcionarioDataGridView.CurrentRow.Cells[0].Value.ToString();
            //senhaTextbox.Text = funcionarioDataGridView.CurrentRow.Cells[1].Value.ToString();
            //usuarioTextbox.Text = funcionarioDataGridView.CurrentRow.Cells[2].Value.ToString();
            cepTextBox.Text = funcionarioDataGridView.CurrentRow.Cells[1].Value.ToString();
            cidadeTextBox.Text = funcionarioDataGridView.CurrentRow.Cells[2].Value.ToString();
            enderecoTextBox.Text = funcionarioDataGridView.CurrentRow.Cells[3].Value.ToString();
            estadoTextbox.Text = funcionarioDataGridView.CurrentRow.Cells[4].Value.ToString();
            numeroTextBox.Text = funcionarioDataGridView.CurrentRow.Cells[5].Value.ToString();
            nomeTextBox.Text = funcionarioDataGridView.CurrentRow.Cells[6].Value.ToString();
            salarioTextBox.Text = funcionarioDataGridView.CurrentRow.Cells[7].Value.ToString();
            cargoTextBox.Text = funcionarioDataGridView.CurrentRow.Cells[8].Value.ToString();
            custoHoraTextBox.Text = funcionarioDataGridView.CurrentRow.Cells[10].Value.ToString();
            horasDiariasTextBox.Text = funcionarioDataGridView.CurrentRow.Cells[11].Value.ToString();
            diaPagamentoTextBox.Text = funcionarioDataGridView.CurrentRow.Cells[12].Value.ToString();
            //dataAdimissaoDateTimePicker.Value.ToString() = funcionarioDataGridView.CurrentRow.Cells[8].Value.ToString();
            
            
           
            
           
           
        }

        private void salarioTextBox_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (char.IsLetter(e.KeyChar) || //Letras
           char.IsSymbol(e.KeyChar) || //Símbolos
           char.IsWhiteSpace(e.KeyChar) || //Espaço
           char.IsPunctuation(e.KeyChar)) //Pontuação
                e.Handled = true; //Não permitir
        }

        private void horasDiariasTextBox_KeyPress(object sender, KeyPressEventArgs e)
        {

            if (char.IsLetter(e.KeyChar) || //Letras
           char.IsSymbol(e.KeyChar) || //Símbolos
           char.IsWhiteSpace(e.KeyChar) || //Espaço
           char.IsPunctuation(e.KeyChar)) //Pontuação
                e.Handled = true; //Não permitir
        }

        private void diaPagamentoTextBox_KeyPress(object sender, KeyPressEventArgs e)
        {

            if (char.IsLetter(e.KeyChar) || //Letras
           char.IsSymbol(e.KeyChar) || //Símbolos
           char.IsWhiteSpace(e.KeyChar) || //Espaço
           char.IsPunctuation(e.KeyChar)) //Pontuação
                e.Handled = true; //Não permitir
        }

        private void custoHoraTextBox_KeyPress(object sender, KeyPressEventArgs e)
        {

            if (char.IsLetter(e.KeyChar) || //Letras
           char.IsSymbol(e.KeyChar) || //Símbolos
           char.IsWhiteSpace(e.KeyChar) || //Espaço
           char.IsPunctuation(e.KeyChar)) //Pontuação
                e.Handled = true; //Não permitir
        }

        private void btnPesquisar_Click(object sender, EventArgs e)
        {
            ServiceReference1.Service1SoapClient x = new ServiceReference1.Service1SoapClient();
            funcionarioDataGridView.DataSource = x.BuscaFuncionario(txtPesquisar.Text); 
        }
    }
}
